<?php

namespace Sisesporte\Entity;

use Doctrine\ORM\Mapping as ORM,
    Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\Entity
 * @ORM\Table(name="cidade")
 * @ORM\Entity(repositoryClass="Sisesporte\Repository\CidadeRepository")
 */
class Cidade {

    public function __construct($options = null) {
        Configurator::configure($this, $options);
        $this->endereco = new ArrayCollection;
        $this->cidadeNaturalidade = new ArrayCollection;
    }

    /**
     * @var integer $sqCidade
     *
     * @ORM\Column(name="sq_cidade", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $sqCidade;

    /**
     * @var string $noCidade
     * @ORM\Column(name="no_cidade", type="text", nullable=false)
     */
    protected $noCidade;

    /**
     * @var string $sqUf
     * @ORM\Column(name="sq_uf", type="text", nullable=false)
     * @ORM\ManyToOne(targetEntity="Sisesporte\Entity\Uf", inversedBy="sq_uf")
     * @ORM\JoinColumn(name="sq_uf", referencedColumnName="sq_uf")
     */
    protected $sqUf;

    /**
     * @var boolean $stAtivo
     * @ORM\Column(name="st_ativo", type="boolean", nullable=true)
     */
    protected $stAtivo;

    /**
     * @ORM\OneToMany(targetEntity="Sisesporte\Entity\Endereco", mappedBy="sq_cidade")
     */
    protected $endereco;

    /**
     * @ORM\OneToMany(targetEntity="Sisesporte\Entity\Pessoa", mappedBy="sq_cidade_naturalidade")
     */
    protected $cidadeNaturalidade;

    public function getSqCidade() {
        return $this->sqCidade;
    }

    public function getNoCidade() {
        return $this->noCidade;
    }

    public function setNoCidade($noCidade) {
        $this->noCidade = $noCidade;
        return $this;
    }

    public function getSqUf() {
        return $this->sqUf;
    }

    public function setSqUf($sqUf) {
        $this->sqUf = $sqUf;
        return $this;
    }

    public function getStAtivo() {
        return $this->stAtivo;
    }

    public function setStAtivo($stAtivo) {
        $this->stAtivo = $stAtivo;
        return $this;
    }

    public function getEndereco() {
        return $this->endereco;
    }

    public function setEndereco($endereco) {
        $this->endereco = $endereco;
        return $this;
    }

    public function getCidadeNaturalidade() {
        return $this->cidadeNaturalidade;
    }

    public function setCidadeNaturalidade($cidadeNaturalidade) {
        $this->cidadeNaturalidade = $cidadeNaturalidade;
        return $this;
    }

    public function __toString() {
        return $this->noCidade;
    }

    public function toArray() {
        return array(
            'sqCidade' => $this->getSqCidade(),
            'noCidade' => $this->getNoCidade(),
            'sqUf' =>  $this->getSqUf()->getSqUf(),
            'stAtivo' => $this->getStAtivo(),
            'endereco' => $this->getEndereco(),
            'cidadeNaturalidade' => $this->getCidadeNaturalidade()
        );
    }

}
